package com.system.service;

import com.github.pagehelper.PageInfo;
import com.system.entity.Teacher;
import com.baomidou.mybatisplus.extension.service.IService;
import com.system.response.Result;

import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 教师表 服务类
 * </p>
 *
 * @author zfc
 * @since 2023-04-20
 */
public interface TeacherService extends IService<Teacher> {

    /**
     * 根据用户名查询该用户是否存在（区分大小写）
     * @param username
     * @return
     */
    Teacher getTeacherByUserName(String username);

    /**
     * 新增教师
     * @param teacher
     * @return
     */
    boolean addTeahcer(Teacher teacher);

    /**
     * 通过Teacher的编号查询信息（只查询0未删除的）
     * @param id
     * @return
     */
    Teacher selectTeahcerById(Integer id);

    /**
     * 通过Teacher的编号查询信息
     * @param id
     * @return
     */
    Teacher selectTeahcerAllById(Integer id);

    /**
     * 修改教师信息
     * @param teacher
     * @return
     */
    boolean updateTeacher(Teacher teacher);

    /**
     * 批量修改教师的删除状态
     * @param ids
     * @param isDelete
     * @return
     */
    Result batchUpdateTeacherIsDelete(Integer[] ids, Integer isDelete);
    /**
     * 彻底删除teacher 通过id
     * @param ids
     * @return
     */
    Result batchDeleteTeacherById(Integer[] ids);

    /**
     * 重置用户密码
     * @param teacher
     * id 用户id
     * password 密码：如果为空就用默认的初始密码
     * @return
     */
    Result resetTeacherPwd(Teacher teacher);

    /**
     * 分页查询teacher
     * @param maps
     * @return
     */
    PageInfo teacherLimit(Map<String,Object> maps);


    /**
     * 查询所有教师数据
     * @return
     */
    Result teacherAll();

    /**
     * 修改密码（需要验证是否和旧密码一致）
     * @param teacher
     * @return
     */
    boolean upadteTeacherPassword(Teacher teacher);

    /**
     * 判断密码是否存在
     * @param teacher
     * @return
     */
    boolean checkTeacherPasswordUnique(Teacher teacher);

    /**
     * 检查旧密码是否正确
     * @param teacher
     * @param formerPwd
     * @return
     */
    boolean checkFormerPasswordFlag(Teacher teacher,String formerPwd);


}
